/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agb.servlets;

import agb.Modelo.Alumno;
import agb.Modelo.Archivos;
import agb.Modelo.Asistencias;  
import agb.Modelo.Calificaciones;
import agb.Modelo.Docente;
import agb.Modelo.EnlacesTemasSylabus;
import agb.Modelo.Horarios;
import agb.Modelo.Promedios;
import agb.Modelo.ProyectosComunicados;
import agb.Modelo.Publicaciones;
import agb.Modelo.Utilidades;
import com.google.gson.Gson;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import java.util.ArrayList;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 *
 * @author Administrator
 */
public class SrvServletDocente extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String accion = request.getParameter("accion");
            if(accion.equalsIgnoreCase("horariosDocente")){
                horariosDocente(request, response);
            }else{
                if(accion.equalsIgnoreCase("listaAlumnos")){
                    listaAlumnos(request, response);
                }else{
                    if(accion.equalsIgnoreCase("infoAlumno")){
                        informacionAlumno(request, response);
                    }else{
                        if(accion.equalsIgnoreCase("listaAlumnosCurso")){
                            listaAlumnosCurso(request, response);
                        }else{
                            if(accion.equalsIgnoreCase("infoNotas")){
                                notasCursoAlumno(request, response);
                            }else{
                                if(accion.equalsIgnoreCase("regEnlaces")){
                                    postRegistroEnlaces(request, response);
                                }else{
                                    if(accion.equalsIgnoreCase("regEnlacesOk")){
                                        RegistroEnlaces(request, response);
                                    }else{
                                        if(accion.equalsIgnoreCase("regComunicadoInv")){
                                            RegistroComunicadosInv(request, response);
                                        }else{
                                            if(accion.equalsIgnoreCase("regProyectos")){
                                                regProyectos(request, response);
                                            }else{
                                                if(accion.equalsIgnoreCase("regProyectosInv")){
                                                    RegistroProyecto(request, response);
                                                }else{
                                                    if(accion.equalsIgnoreCase("comunicadosCons")){
                                                        listaComunicados(request, response);
                                                    }else{
                                                        if(accion.equalsIgnoreCase("eliminarComunicado")){
                                                            eliminarComunicado(request, response);
                                                        }else{
                                                            if(accion.equalsIgnoreCase("proyectosCons")){
                                                                listaProyectos(request, response);
                                                            }else{
                                                                if(accion.equalsIgnoreCase("eliminarProyecto")){
                                                                    eliminarProyecto(request, response);
                                                                }else{
                                                                    if(accion.equalsIgnoreCase("enlacesCons")){
                                                                        listaEnlaces(request, response);
                                                                    }else{
                                                                        if(accion.equalsIgnoreCase("enlacesElim")){
                                                                            eliminarEnlace(request, response);
                                                                        }else{
                                                                            if(accion.equalsIgnoreCase("subir")){
//                                                                                subeArchivos(request, response);                                                                                
                                                                            }else{                                                                                                                    
                                                                                if(accion.equalsIgnoreCase("listaAlumnosAsistencia")){
                                                                                    listaAlumnosAsistencia(request, response);
                                                                                }else{
                                                                                    if(accion.equalsIgnoreCase("asistenciaAlumno")){
                                                                                        informacionAlumnoAsistencia(request, response);
                                                                                    }else{
                                                                                        if(accion.equalsIgnoreCase("resumenAsistencia")){
                                                                                            ResumenAsistencia(request, response);
                                                                                        } else{
                                                                                            if(accion.equalsIgnoreCase("horarioActual")) {
                                                                                                horariosDocenteActual(request, response);
                                                                                            }
                                                                                            else
                                                                                            {
                                                                                                if(accion.equalsIgnoreCase("listaCursos"))
                                                                                                {
                                                                                                    listaCursos(request, response);
                                                                                                }
                                                                                                else
                                                                                                {
                                                                                                    if(accion.equalsIgnoreCase("listaTemas"))
                                                                                                    {
                                                                                                        listaTemas(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("regArchivos")){
                                                                                                        aulasDocenteArchivos(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("archivosDocente")){
                                                                                                        archivosDocente(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("getArchivosDocente")){
                                                                                                        getArchivoDocente(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("seleccionarAula")){
                                                                                                        seleccionarAula(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("comuActividad")){
                                                                                                        comunicadoActividad(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("comuAnuncio")){
                                                                                                        comunicadoActividad(request, response);
                                                                                                    } else if(accion.equalsIgnoreCase("comuReunion")){
                                                                                                        comunicadoActividad(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("comuCalendario")){
                                                                                                        comunicadoActividad(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("descargaArticulo")){
                                                                                                        descargas(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("descargaCurricula")){
                                                                                                        descargas(request, response);
                                                                                                    } else if(accion.equalsIgnoreCase("descargaRegla")){
                                                                                                        descargas(request, response);
                                                                                                    } else if(accion.equalsIgnoreCase("descargaTramite")){
                                                                                                        descargas(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("eliminarEnlaces")){
                                                                                                        eliminarTodosEnlace(request, response);
                                                                                                    }else if (accion.equalsIgnoreCase("regComunicados")){
                                                                                                        registroComunicado(request, response);
                                                                                                    }else if (accion.equalsIgnoreCase("detalleComunicado")){
                                                                                                            detalleComunicado(request, response);
                                                                                                    }else if (accion.equalsIgnoreCase("mantProyectos")){
                                                                                                            proyectosInvestigacion(request, response);
                                                                                                    }else if (accion.equalsIgnoreCase("listaTemasProyectos")){
                                                                                                            listaTemasProyectos(request, response);
                                                                                                    }else if (accion.equalsIgnoreCase("detalleProyecto")){
                                                                                                            detalleProyecto(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("comunicadosDocente")){
                                                                                                        comunicadosDocente(request, response);
                                                                                                    }else if(accion.equalsIgnoreCase("notas")){
                                                                                                        notas(request, response);
                                                                                                    }
                                                                                                    else if(accion.equalsIgnoreCase("configuracion")){
                                                                                                        configuracion(request, response);
                                                                                                    }

                                                                                                                

                                                                                                }
                                                                                            }
                                                                                        }
                                                                                      
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } finally { 
            out.close();
        }
    }
    protected void comboPeriodoMensual(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            System.out.println("codPersona: " + cod);
            Date fechaActual = new Date();
            Utilidades oUtil = new Utilidades();
            oUtil = Utilidades.GradoSeccionAlumno(cod);                   
            int anio = 0;
            if(oUtil.getAnioMatriculas()!=null){
                anio = Integer.parseInt(oUtil.getAnioMatriculas());
            } 
            System.out.println("comboPeriodoMensual");
            Vector<String> LMuestraPeriodos = null;  
            LMuestraPeriodos = new Vector<String>();                
            LMuestraPeriodos.add("1- Primer Mes");
            if(anio < (fechaActual.getYear() + 1900)){
                            
            }else{
                
                
                if((((fechaActual.getMonth()+1)>=4) ) ){
                    LMuestraPeriodos.add("2- Segundo Mes");
                }                
                if((((fechaActual.getMonth()+1)>=5))){
                    LMuestraPeriodos.add("3- Tercer Mes");
                }                
                if((((fechaActual.getMonth()+1)>=6) )){
                   LMuestraPeriodos.add("4- Cuarto Mes"); 
                }
                if((((fechaActual.getMonth()+1)>=7) ) ){
                   LMuestraPeriodos.add("5- Quinto Mes");
                }
                if((((fechaActual.getMonth()+1)>=8) ) ){
                   LMuestraPeriodos.add("6- Sexto Mes");
                }
                if((((fechaActual.getMonth()+1)>=9) ) ){
                   LMuestraPeriodos.add("7- Setimo Mes"); 
                }
                if((((fechaActual.getMonth()+1)>=10) ) ){
                   LMuestraPeriodos.add("8- Octavo Mes"); 
                }
            }
 
            request.setAttribute("periodos", LMuestraPeriodos);
            request.setAttribute("codigo", cod);
     
            this.getServletContext().getRequestDispatcher("/dinamica/docente/Notas/notasAlumno.jsp").forward(request,response);
            
        } finally {
            out.close();
        }
    }
     protected void configuracion(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
     {
          response.setContentType("text/html;charset=UTF-8");
          
           this.getServletContext().getRequestDispatcher("/dinamica/apoderado/Configuracion/Configuracion.jsp").forward(request, response);
     }
     private int tipoComunicado(String accion)
 {
     if(accion.equalsIgnoreCase("comuActividad"))
     {
         return 2;
     }
     else
     {
         if(accion.equalsIgnoreCase("comuAnuncio"))
         {
             return 4;
         }
         else
         {
             if(accion.equalsIgnoreCase("comuReunion"))
             {
                 return 1;
             }
             else
             {
                 //Si es comunCalendario
                     return 3;
                 
             }
         }
     }
 }
     private String tipoActividad(int tipo)
 {
     String rpta="";
     switch(tipo)
     {
         case 1:rpta="Reunion"; break;
         case 2:rpta="Actividad"; break;
         case 3:rpta="Calendario";break;
         case 4:rpta="Anuncio";  
     }
     
     return rpta;
 }
      protected void comunicadoActividad(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       response.setContentType("text/html;charset=UTF-8");
      
        PrintWriter out = response.getWriter();
        try 
        {
            HttpSession session = request.getSession(true);
             int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
//             Utilidades oUtilidades = new Utilidades();
//             oUtilidades = Utilidades.GradoSeccionAlumno(cod);
             Utilidades oUtilidad = Utilidades.GradoSeccionAlumno(cod);
             int codGradoNivel = 0;
             codGradoNivel = Utilidades.nivelGradoAlumno(oUtilidad.getCodGrado(), oUtilidad.getCodNivel());
 ArrayList<ProyectosComunicados> LReuniones = new ArrayList<ProyectosComunicados>();
 int tipoActividad=tipoComunicado(request.getParameter("accion"));
 LReuniones = ProyectosComunicados.ListaCabeceraComunicadoPorNivelGradoSeccionTipo(codGradoNivel, oUtilidad.getCodSeccion(),tipoActividad);
 
             
             request.setAttribute("actividad", LReuniones);
             
             this.getServletContext().getRequestDispatcher("/dinamica/docente/Comunicados/Comunicado"+tipoActividad(tipoActividad)+".jsp").forward(request, response);
           
        }
        finally 
        {
            out.close();
        }
  }
      
  protected void notas(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       response.setContentType("text/html;charset=UTF-8");      
        PrintWriter out = response.getWriter();
        try{
            HttpSession session = request.getSession(true);
            List<Docente> LDocentes = new ArrayList<Docente>();
            LDocentes = Docente.CursosGradoSeccionNivelDocenteSegunHorario(Integer.parseInt(session.getAttribute("codPersona").toString()));
            request.setAttribute("cursos", LDocentes);             
             this.getServletContext().getRequestDispatcher("/dinamica/docente/Notas/notasAlumno.jsp").forward(request, response);           
        }
        finally{
            out.close();
        }
  }



      protected void proyectosInvestigacion(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
       response.setContentType("text/html;charset=UTF-8");

        PrintWriter out = response.getWriter();
        try
        {
            HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            List<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaProyectosPorProfesorYRangoFechas(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\" " + "<input type='checkbox' class='file' value='" + actual.getCodProyecto() + "'/>" + "\",\"" + actual.getNombre() +  "\",\"" + actual.getCurso() +  "\",\"" + actual.getTema() + "\",\"" + actual.getFecha() + "\",\"" + actual.getGrado()+ "\",\"" + actual.getNivel() + "\",\"<a href='javascript:showDialog("+ actual.getCodProyecto() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            
            request.setAttribute("proyectos", str);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoProyectos.jsp").forward(request, response);

            }
            finally
            {
                out.close();
            }
      }
       private int tipoDescarga(String tipo)
    {
        if(tipo.equalsIgnoreCase("descargaArticulo"))
        {
            return 4;
        }
        else
        {
            if(tipo.equalsIgnoreCase("descargaRegla"))
            {
                return 5;
            }
            else
            {
                if(tipo.equalsIgnoreCase("descargaTramite"))
                {
                    return 6;
                }
                else
                {   
                     //descargaCurricula 
                        return  7;
                }
            }
        }
    }
       private String descarga(int tipo)
    {
        String rpta="";
        switch(tipo)
        {
            case 4: rpta="Articulo"; break;
            case 5: rpta="Reglamento"; break;
            case 6: rpta="FormTramite"; break;
            case 7: rpta="Curricula"; break;
        }
        return rpta;
    }
       protected void descargas(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
     {
          response.setContentType("text/html;charset=UTF-8");
          PrintWriter out = response.getWriter();
          
          try
          {
               HttpSession session = request.getSession(true);
               
                ArrayList<Publicaciones> LDescargas = new ArrayList<Publicaciones>();
                int tipo=tipoDescarga(request.getParameter("accion"));
                LDescargas = Publicaciones.listaDescargas(tipo);
               
                request.setAttribute("descargas", LDescargas);
             this.getServletContext().getRequestDispatcher("/dinamica/docente/Descargas/Descarga"+descarga(tipo)+".jsp").forward(request, response);
          }
          finally
          {
               out.close();
          }
     } 
   
     protected void seleccionarAula(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
     {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        
        try {
                int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
                 ArrayList<Docente> LDocentes = new ArrayList<Docente>();
             
               LDocentes = Docente.GradoSeccionNivelDocenteSegunHorario(cod);
                
             request.setAttribute("aula", LDocentes);
             
             String tipo=request.getParameter("tipo");
             
                  Docente oDocente = new Docente();
                  oDocente = Docente.NombreDocentesAnioPorCodigo(cod);
                  System.out.print(oDocente);
          
                  request.setAttribute("docente", oDocente);
         

             
             if(tipo.equalsIgnoreCase("L"))//Si se trata de ListarAlumnos
             {
                 this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ListarAlumnos.jsp").forward(request, response);
             }
             else
             {
                 if(tipo.equalsIgnoreCase("A"))//Si se trata de AsistenciaAlumnos
                 {
                     this.getServletContext().getRequestDispatcher("/dinamica/docente/Asistencia/Asistencia.jsp").forward(request, response);
                 }
             }
            
            }
        finally {
            out.close();
        }
        }
    
    protected void horariosDocenteActual(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
           
            Docente oDocente;
            oDocente =  Docente.NombreDocentesAnioPorCodigo(cod);
            
            ArrayList<Horarios> LHorarios = new ArrayList<Horarios> ();          
            LHorarios = new Horarios().HorarioDocentePorCodigoPersonaProfesor(cod);
            request.setAttribute("docente", oDocente);
            request.setAttribute("horarios", LHorarios);
            //System.out.println("Docente" + oDocente);
            //System.out.println("Lista de Horario" + LHorarios);

            this.getServletContext().getRequestDispatcher("/dinamica/docente/Horarios/horarioDocenteActual.jsp").forward(request, response);
            
        } finally {
            out.close();
        }
    }

    protected void aulasDocenteArchivos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            List<Docente> LGrados = new ArrayList<Docente>();
            LGrados = Docente.gradoNivelSegunDocenteCodPersona(cod);
            request.setAttribute("aulas", LGrados);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ArchivosForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }

    protected void regProyectos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            List<Docente> LCursos = new ArrayList<Docente>();
            LCursos = Docente.CursosGradoSeccionNivelDocenteSegunHorario(cod);
            int codNivelGrado = Utilidades.nivelGradoAlumno(LCursos.get(0).getCodGrado(), LCursos.get(0).getCodNivel());
            
            List<EnlacesTemasSylabus> LTemas = new ArrayList<EnlacesTemasSylabus>();
            LTemas = EnlacesTemasSylabus.temasPorCursoNivelGrado(LCursos.get(0).getCodCurso(), codNivelGrado);
            
            request.setAttribute("temas", LTemas);
            request.setAttribute("cursos", LCursos);
            
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ProyectosForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }
    
    protected void registroComunicado(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            ArrayList<Docente> LAulas = new ArrayList<Docente>();
            LAulas = Docente.GradoSeccionNivelDocenteSegunHorario(cod);
            Utilidades oUtilidad = Utilidades.GradoSeccionAlumno(cod);
             //int codGradoNivel = 0;
             //codGradoNivel = Utilidades.nivelGradoAlumno(oUtilidad.getCodGrado(), oUtilidad.getCodNivel());
            
            int codNivelGrado = Utilidades.nivelGradoAlumno(LAulas.get(0).getCodGrado(), LAulas.get(0).getCodNivel());
            
            
            ArrayList<ProyectosComunicados> LTipos = new ArrayList<ProyectosComunicados>();
            LTipos = ProyectosComunicados.ListaTipoComunicados();
            //LTipos = ProyectosComunicados.ListaCabeceraComunicadoPorNivelGradoSeccionTipo(codNivelGrado, cod, cod);
            request.setAttribute("tipos", LTipos);
            request.setAttribute("aulas", LAulas);
            
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ComunicadosForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }
    
    protected void detalleComunicado(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int codComunicado = Integer.parseInt(request.getParameter("codComunicado"));
            ProyectosComunicados oComunicado = new ProyectosComunicados();
            oComunicado = ProyectosComunicados.modificarComunicado(codComunicado);
            
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            ArrayList<Docente> LDocentes = new ArrayList<Docente>();
            LDocentes = Docente.GradoSeccionNivelDocenteSegunHorario(cod);
            
            ArrayList<ProyectosComunicados> LTipos = new ArrayList<ProyectosComunicados>();
            LTipos = ProyectosComunicados.ListaTipoComunicados();

            request.setAttribute("aulas", LDocentes);
            request.setAttribute("tipos", LTipos);
            request.setAttribute("comunicado", oComunicado);
 
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ComunicadosForm.jsp").forward(request, response);
        } finally {
            
            out.close();
        }
    }

    protected void getArchivoDocente(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            List<Docente> LGrados = new ArrayList<Docente>();
            LGrados = Docente.gradoNivelSegunDocenteCodPersona(cod);
            
            
            Archivos oArchivo = new Archivos();
            oArchivo = Archivos.buscaArchivo(Integer.parseInt(request.getParameter("codArchivo")));
            
            request.setAttribute("aulas", LGrados);
            request.setAttribute("archivo", oArchivo);
            
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ArchivosForm.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }

    protected void archivosDocente(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            List<Archivos> LArchivos = new ArrayList<Archivos>();
            LArchivos = Archivos.archivosPersona(cod);
            StringBuilder sb = new StringBuilder();
            for(Archivos actual:LArchivos){
                sb.append("[\" " + "<input type='checkbox' class='file' value='" + actual.getCodArchivo() + "-" + actual.getNombre() + "'/>" + "\",\"" + actual.getDescripcion() + "\",\"" + actual.getGrado() + "\",\"" + actual.getNivel()+ "\",\"" + (actual.getActivo().equals("Y")?"Activo":"Inactivo") + "\",\"<a href='javascript:showDialog("+ actual.getCodArchivo() + ");' class='edit_icon' title='Editar'></a>\"],");
            }

          
            String str="[]";
            if(sb.length()!=0)
            {
                   str = sb.substring(0,sb.length()-1);
                
                    str = "[" + str + "]";
                
           
            }
           request.setAttribute("archivos", str);
           this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoArchivos.jsp").forward(request, response);
        } finally {
            out.close();
        }
    }

    protected void listaCursos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            ArrayList<Docente> LCursos = new ArrayList<Docente>();
            LCursos = Docente.CursosGradoNivelDocenteSegunCodPersonaDocente(codPersonaDocente);
             ArrayList<EnlacesTemasSylabus> LEnlaces = new ArrayList<EnlacesTemasSylabus>();
             LEnlaces = EnlacesTemasSylabus.ListaEnlacesPorProfesorCursoNivelGrado(codPersonaDocente);
             request.setAttribute("enlaces",LEnlaces);
            request.setAttribute("cursos",LCursos);
                        this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoEnlaces.jsp").forward(request,response);

        }
        finally 
        {
            out.close();
        }
    }
    
  protected void horariosDocente(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());          
             List<Docente> LDocentes = new ArrayList<Docente>();
             LDocentes = Docente.NombreDocentesPorAñoAcademico(cod);
           
             if(request.getParameter("cboDocente")==null){
                  Docente oDocente = new Docente();
                  oDocente = Docente.NombreDocentesAnioPorCodigo(cod);
                  System.out.print(oDocente);
          
                  request.setAttribute("docente", oDocente);
                  request.setAttribute("lista", LDocentes);

                  this.getServletContext().getRequestDispatcher("/dinamica/docente/Horarios/horarioDocentes.jsp").forward(request, response);
             }
             else {
                 if(request.getParameter("cboDocente")!=null)
                  {
              ArrayList<Horarios> LHorarios = new ArrayList<Horarios> ();
              int codDocente = Integer.parseInt(request.getParameter("cboDocente"));
              LHorarios = new Horarios().HorarioDocentePorCodigoPersonaProfesor(codDocente);
              
            
              
              System.out.println("COLECCION:  "+new Gson().toJson(LHorarios));
              response.getWriter().write(new Gson().toJson(LHorarios));
                }
             }
            
            
         
           
        } finally {
            out.close();
        }
    }
   
   protected void listaAlumnos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       try {
            HttpSession session = request.getSession(true);
//            RequestDispatcher rd;
//            request.setAttribute("r_estilo", true);
//            String next = "/dinamica/docente/include_consulta/listaAlumnos.jsp";
            int codHorario = Integer.parseInt(request.getParameter("cboAula"));
            
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            int anioDocente = Utilidades.AnioDocentePorCodigo(cod);
            ArrayList<Alumno> LAlumnos = new ArrayList<Alumno>();
            LAlumnos = Alumno.nombreAlumnosSegunAula(codHorario, anioDocente);
//            Docente oDocente = new Docente();
//            oDocente = Docente.GradoSeccionNivelDocenteSegunCodigoHorario(codHorario,cod);
            //session.setAttribute("listaAlumnos", LAlumnos);
            //session.setAttribute("datosAula", oDocente);
//            rd = this.getServletContext().getRequestDispatcher(next);
//            rd.forward(request,response);
             response.getWriter().write(new Gson().toJson(LAlumnos));

        } finally {
            out.close();
        }
    }

     protected void informacionAlumno(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            int cod = Integer.parseInt(request.getParameter("alumno"));
            Utilidades oUtilidad = new Utilidades();
            Alumno oAlumno = new Alumno();
           
            oUtilidad = Utilidades.GradoSeccionAlumno(cod);
            oAlumno = Alumno.NombreParienteSegunCodigoAlumno(cod);
           // request.setAttribute("r_estilo", true);
           // String next = "/dinamica/docente/include_consulta/infoAlumnoPariente.jsp";
            //int cod = Integer.parseInt(request.getParameter("codigo"));            
            //session.setAttribute("codigo", cod);
            //rd = this.getServletContext().getRequestDispatcher(next);
            //rd.forward(request,response);
            if(oAlumno.getNombreCompleto()==null || oAlumno.getNombreCompleto().length()<=1)
            {
                oAlumno.setPariente("Alumno No Tiene Registrado Informacion de Parientes");
            }
            else
            {
                oAlumno.setPariente(oAlumno.getNombreCompleto());
            }
            request.setAttribute("alumno", oAlumno);
            request.setAttribute("utilidad", oUtilidad);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/infoParienteAlumno.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }

    protected void notasCursoAlumno(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       try {
         int periodo = Integer.parseInt(request.getParameter("codMes"));
            int codigo  = Integer.parseInt(request.getParameter("codigo"));
            if(periodo!=0){
                ArrayList<Promedios> LNotas = new ArrayList<Promedios>();
                Promedios cabecera = new Promedios();
                ArrayList<Promedios> LPromMes1 = new ArrayList<Promedios>();
                ArrayList<Promedios> LPromMes2 = new ArrayList<Promedios>();
                ArrayList<Promedios> LPromMes3 = new ArrayList<Promedios>();
                ArrayList<Promedios> LNotasBimestrales = new ArrayList<Promedios>();
                ArrayList<Promedios> LNotasTrimestrales = new ArrayList<Promedios>();
                String next = "";
                switch(periodo){
                    case 1:
                        LNotas = Promedios.notasMes01(codigo);
                        cabecera.setNota1(1);
                        cabecera.setNota2(2);
                        cabecera.setNota3(3);
                        cabecera.setMensual(1);
                        break;
                    case 2:
                        LNotas = Promedios.notasMes02(codigo);  
                        cabecera.setNota1(4);
                        cabecera.setNota2(5);
                        cabecera.setNota3(6);
                        cabecera.setMensual(2);
                        break;
                    case 3:
                        LNotas = Promedios.notasMes03(codigo);  
                        cabecera.setNota1(7);
                        cabecera.setNota2(8);
                        cabecera.setNota3(9);
                        cabecera.setMensual(3);
                        break;
                    case 4:
                        LNotas = Promedios.notasMes04(codigo); 
                        cabecera.setNota1(10);
                        cabecera.setNota2(11);
                        cabecera.setNota3(12);
                        cabecera.setMensual(4);
                        break;
                    case 5:
                        LNotas = Promedios.notasMes05(codigo);
                        cabecera.setNota1(13);
                        cabecera.setNota2(14);
                        cabecera.setNota3(15);
                        cabecera.setMensual(5);
                        break;
                    case 6:
                         LNotas = Promedios.notasMes06(codigo);
                         cabecera.setNota1(16);
                         cabecera.setNota2(17);
                         cabecera.setNota3(18);
                         cabecera.setMensual(6);
                        break;
                    case 7:
                         LNotas = Promedios.notasMes07(codigo);
                         cabecera.setNota1(19);
                         cabecera.setNota2(20);
                         cabecera.setNota3(21);
                         cabecera.setMensual(7);
                        break;
                    case 8:
                         LNotas = Promedios.notasMes08(codigo);
                         cabecera.setNota1(22);
                         cabecera.setNota2(23);
                         cabecera.setNota3(24);
                         cabecera.setMensual(8);
                        break;
                    case 9:
                         LNotas = Promedios.notasMes09(codigo);
                         cabecera.setNota1(25);
                         cabecera.setNota2(26);
                         cabecera.setNota3(27);                     
                         cabecera.setMensual(9);
                        break;
                    case 21:
                            cabecera.setNota1(1);
                            cabecera.setNota2(2);                                             
                            cabecera.setMensual(1);
                            LNotasBimestrales = Promedios.notasBimestre01(codigo);
                            LPromMes1 = Promedios.notasMes01(codigo);
                            LPromMes2 = Promedios.notasMes02(codigo);
                        break;                    
                    case 22:
                            cabecera.setNota1(3);
                            cabecera.setNota2(4);                                             
                            cabecera.setMensual(2);
                            LNotasBimestrales = Promedios.notasBimestre02(codigo);
                            LPromMes1 = Promedios.notasMes03(codigo);
                            LPromMes2 = Promedios.notasMes04(codigo);
                        break;
                    case 23:
                            cabecera.setNota1(5);
                            cabecera.setNota2(6);                                             
                            cabecera.setMensual(3);
                            LNotasBimestrales = Promedios.notasBimestre03(codigo);
                            LPromMes1 = Promedios.notasMes05(codigo);
                            LPromMes2 = Promedios.notasMes06(codigo);
                        break;
                    case 24:
                            cabecera.setNota1(7);
                            cabecera.setNota2(8);                                             
                            cabecera.setMensual(4);
                            LNotasBimestrales = Promedios.notasBimestre04(codigo);
                            LPromMes1 = Promedios.notasMes07(codigo);
                            LPromMes2 = Promedios.notasMes08(codigo);
                        break;
                    case 31:
                        cabecera.setNota1(1);
                        cabecera.setNota2(2); 
                        cabecera.setNota3(3);
                        cabecera.setMensual(1);
                        LNotasTrimestrales = Promedios.notasTrimestre01(codigo);
                        LPromMes1 = Promedios.notasMes01(codigo);
                        LPromMes2 = Promedios.notasMes02(codigo);
                        LPromMes3 = Promedios.notasMes03(codigo);
                        break;
                    case 32:
                        cabecera.setNota1(4);
                        cabecera.setNota2(5); 
                        cabecera.setNota3(6);
                        cabecera.setMensual(2);
                        LNotasTrimestrales = Promedios.notasTrimestre02(codigo);
                        LPromMes1 = Promedios.notasMes04(codigo);
                        LPromMes2 = Promedios.notasMes05(codigo);
                        LPromMes3 = Promedios.notasMes06(codigo);
                        break;
                    case 33:
                        cabecera.setNota1(7);
                        cabecera.setNota2(8); 
                        cabecera.setNota3(9);
                        cabecera.setMensual(3);
                        LNotasTrimestrales = Promedios.notasTrimestre03(codigo);
                        LPromMes1 = Promedios.notasMes07(codigo);
                        LPromMes2 = Promedios.notasMes08(codigo);
                        LPromMes3 = Promedios.notasMes09(codigo);
                        break;

                }
                ArrayList<Promedios> NuevaListaProm = new ArrayList<Promedios>();
                 Utilidades oUtil = Utilidades.GradoSeccionAlumno(codigo);
                 ArrayList<Horarios> LCursos = new ArrayList<Horarios>();
                  LCursos = Horarios.listaCursosAlumnoSegunHorario(codigo);
                 int pesoM = Promedios.PesoMes(oUtil.getCodNivel());              
                 int pesoPM = Promedios.PesoPromedioMes(oUtil.getCodNivel());                
                 int pesoB = Promedios.PesoBimTrimestral(oUtil.getCodNivel()); 

                if(periodo>0 && periodo<10){
                    next = "/dinamica/alumno/Notas/ajaxNotasMensuales.jsp";
                    ArrayList<Promedios> NuevaLista = new ArrayList<Promedios>();
                    NuevaLista = Promedios.OrdenarNotas(LNotas, LCursos);         
                    NuevaListaProm = Promedios.calculaPromedio(NuevaLista, 3, pesoM); 
                }
                if(periodo>20 && periodo < 25){
                    
                    next = "/dinamica/alumno/Notas/ajaxNotasBimestrales.jsp";
                    System.out.println(next);
                    ArrayList<Promedios> LPromMesOrd1 = new ArrayList<Promedios>();
                    ArrayList<Promedios> LPromMesOrd2 = new ArrayList<Promedios>();               
                    LPromMesOrd1 = Promedios.OrdenarNotas(LPromMes1, LCursos);
                    LPromMesOrd2 = Promedios.OrdenarNotas(LPromMes2, LCursos);
                    ArrayList<Promedios> LPromMesOrdShow1 = new ArrayList<Promedios>();
                    ArrayList<Promedios> LPromMesOrdShow2 = new ArrayList<Promedios>();
                    LPromMesOrdShow1 = Promedios.calculaPromedio(LPromMesOrd1, 3, pesoM);
                    LPromMesOrdShow2 = Promedios.calculaPromedio(LPromMesOrd2, 3, pesoM);
                    ArrayList<Promedios> LPromBimestral = new ArrayList<Promedios>();
                    Promedios notas = null;
                    for(Horarios o: LCursos){
                        notas = new Promedios();
                        notas.setCurso(o.getNombreCurso());
                        for(Promedios P1: LPromMesOrdShow1){
                            if(P1.getCurso().equalsIgnoreCase(o.getNombreCurso())){
                                notas.setMes1(P1.getPromedioMes());
                            }
                        }
                        for(Promedios P2: LPromMesOrdShow2){
                            if(P2.getCurso().equalsIgnoreCase(o.getNombreCurso())){
                                notas.setMes2(P2.getPromedioMes());
                            }
                        }
                        for(Promedios NB: LNotasBimestrales){
                            if(NB.getCurso().equalsIgnoreCase(o.getNombreCurso())){
                                notas.setNotaBimestral(NB.getNotaBimestral());
                            }
                        }
                    LPromBimestral.add(notas);
                    }
                    NuevaListaProm = new Promedios().calculaPromBimestral(LPromBimestral, 1, pesoB);
                }
                if(periodo>30 && periodo < 34){
//                    next = "/dinamica/alumno/include_consulta/result_notas_trimestre.jsp";
//                    Vector<Promedios> LPromMesOrd1 = new Vector<Promedios>();
//                    Vector<Promedios> LPromMesOrd2 = new Vector<Promedios>();
//                    Vector<Promedios> LPromMesOrd3 = new Vector<Promedios>();
//                    LPromMesOrd1 = Promedios.OrdenarNotas(LPromMes1, LCursos);
//                    LPromMesOrd2 = Promedios.OrdenarNotas(LPromMes2, LCursos);
//                    LPromMesOrd3 = Promedios.OrdenarNotas(LPromMes3, LCursos);
//                    Vector<Promedios> LPromMesOrdShow1 = new Vector<Promedios>();
//                    Vector<Promedios> LPromMesOrdShow2 = new Vector<Promedios>();
//                    Vector<Promedios> LPromMesOrdShow3 = new Vector<Promedios>();
//                    LPromMesOrdShow1 = Promedios.calculaPromedio(LPromMesOrd1, 3, pesoM);
//                    LPromMesOrdShow2 = Promedios.calculaPromedio(LPromMesOrd2, 3, pesoM);
//                    LPromMesOrdShow3 = Promedios.calculaPromedio(LPromMesOrd3, 3, pesoM);
//                    Vector<Promedios> LPromTrimestral = new Vector<Promedios>();
//                    Promedios notas = null;
//                    for(Horarios o: LCursos){
//                        notas = new Promedios();
//                        notas.setCurso(o.getNombreCurso());
//                        for(Promedios P1: LPromMesOrdShow1){
//                            if(P1.getCurso().equalsIgnoreCase(o.getNombreCurso())){
//                                notas.setMes1(P1.getPromedioMes());
//                            }
//                        }
//                        for(Promedios P2: LPromMesOrdShow2){
//                            if(P2.getCurso().equalsIgnoreCase(o.getNombreCurso())){
//                                notas.setMes2(P2.getPromedioMes());
//                            }
//                        }
//                        for(Promedios P3: LPromMesOrdShow3){
//                            if(P3.getCurso().equalsIgnoreCase(o.getNombreCurso())){
//                                notas.setMes3(P3.getPromedioMes());
//                            }
//                        }
//                        for(Promedios NB: LNotasTrimestrales){
//                            if(NB.getCurso().equalsIgnoreCase(o.getNombreCurso())){
//                                notas.setNotaTrimestral(NB.getNotaTrimestral());
//                            }
//                        }
//                        LPromTrimestral.add(notas);
//                    }
//                    NuevaListaProm = Promedios.calculaPromTrimestral(LPromTrimestral, pesoPM, pesoB);
                }

           
                request.setAttribute("notas", NuevaListaProm);
                request.setAttribute("cabecera", cabecera);
                
                this.getServletContext().getRequestDispatcher(next).forward(request,response);
            }else
            {
                out.print("Error-Inténtelo de nuevo");
            }
            
        } finally {
            out.close();
        }
    }

    protected void listaAlumnosCurso(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
      try {           
            HttpSession session = request.getSession(true);
            String cods = request.getParameter("cboCurso");
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
            String lista[] = cods.split(",");
            int codHorario = Integer.parseInt(lista[0]);
            int codCurso = Integer.parseInt(lista[1]);
            int anioDocente = Utilidades.AnioDocentePorCodigo(codPersonaDocente);
            List<Alumno> LAlumnos = new ArrayList<Alumno>();
            LAlumnos = Alumno.nombreAlumnosSegunAula(codHorario, anioDocente);
            //Docente oDocente = new Docente();
            //oDocente = Docente.GradoSeccionNivelDocenteSegunCodigoHorario(codHorario,codPersonaDocente);
            Date fechaActual = new Date();
             Utilidades oUtil = new Utilidades();
            oUtil = Utilidades.GradoSeccionAlumno(LAlumnos.get(0).getCodigo());                   
            int anio = 0;
            if(oUtil.getAnioMatriculas()!=null){
                anio = Integer.parseInt(oUtil.getAnioMatriculas());
            } 
           
            Vector<String> LMuestraPeriodos = null; 
                LMuestraPeriodos = new Vector<String>();                
            LMuestraPeriodos.add("1- Primer Mes");
            if(anio < (fechaActual.getYear() + 1900)){
                            
            }else{
                
                
                if((((fechaActual.getMonth()+1)>=4) ) ){
                    LMuestraPeriodos.add("2- Segundo Mes");
                }                
                if((((fechaActual.getMonth()+1)>=5))){
                    LMuestraPeriodos.add("3- Tercer Mes");
                }                
                if((((fechaActual.getMonth()+1)>=6) )){
                   LMuestraPeriodos.add("4- Cuarto Mes"); 
                }
                if((((fechaActual.getMonth()+1)>=7) ) ){
                   LMuestraPeriodos.add("5- Quinto Mes");
                }
                if((((fechaActual.getMonth()+1)>=8) ) ){
                   LMuestraPeriodos.add("6- Sexto Mes");
                }
                if((((fechaActual.getMonth()+1)>=9) ) ){
                   LMuestraPeriodos.add("7- Setimo Mes"); 
                }
                if((((fechaActual.getMonth()+1)>=10) ) ){
                   LMuestraPeriodos.add("8- Octavo Mes"); 
                }
            }
            ArrayList<String> totalMes=new ArrayList<String>();
            for (int i = 0; i <LAlumnos.size(); i++) 
            {
                  String combo="<select id="+(i+1)+"><option value=0>--Seleccione Mes--</option>";
             int j=1;
                    for(String mes:LMuestraPeriodos)
                    {

                        combo+="<option value="+j+">"+mes+"</option>";
                        j++;
                    }
                     combo+="</select>";
                     totalMes.add(combo);
            }
          
           
            
            StringBuilder sb = new StringBuilder();
            int i=1;
            int k=0;
            for(Alumno actual:LAlumnos){
                sb.append("[\"" + (i++) + "\",\"" + actual.getNombreCompleto()  + "\",\"" +totalMes.get(k) +  "\",\"<a href='javascript:showDialog("+(k+1) + "," + actual.getCodigo() + ");' class='approve_icon' title='Approve'></a>\"],");
                k++;
            }
            String str = sb.substring(0,sb.length()-1);
            if(str.equals("")){
                str = "[]";
            }else{
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            out.println(str);
        } finally {
            out.close();
        }
    }


   protected void postRegistroEnlaces(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            request.setAttribute("r_estilo", true);
            String next = "/dinamica/docente/include_aulaVirtual/doc_AulaVirtualEnlacesReg.jsp";
            String codigos = request.getParameter("cboCurso");
            String cods[] = codigos.split(",");
            String codCurso = cods[0];
            String codGrado = cods[1];
            String codNivel = cods[2];
            int cNivel = Integer.parseInt(codNivel);
            int cGrado = Integer.parseInt(codGrado);
            int cCurso = Integer.parseInt(codCurso);
            int codNivelGrado = 0;
            codNivelGrado = Utilidades.nivelGradoAlumno(cGrado, cNivel);
            Vector<EnlacesTemasSylabus> LTemas = new Vector<EnlacesTemasSylabus>();
           // LTemas = EnlacesTemasSylabus.temasPorCursoNivelGrado(cCurso, codNivelGrado);            
            session.setAttribute("temas", LTemas);
            rd = this.getServletContext().getRequestDispatcher(next);
            rd.forward(request,response);
        } finally {
            out.close();
        }
    }

      protected void RegistroEnlaces(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            String mensaje ="false";
             int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
          //  request.setAttribute("r_estilo", true);
          //  String next = "/dinamica/docente/include_aulaVirtual/doc_AulaVirtualEnlacesReg.jsp";
            String enlace = request.getParameter("txtEnlace");
            String descripcion = request.getParameter("txtDescripcion");
            int codTema = Integer.parseInt(request.getParameter("cboTema"));
            EnlacesTemasSylabus oEnlace= new EnlacesTemasSylabus();
            oEnlace.setCodTema(codTema);
            oEnlace.setEnlace(enlace);
            oEnlace.setDescripcion(descripcion);
            if(EnlacesTemasSylabus.registroEnlace(oEnlace))
            {
                //Mensaje = "Enlace Registrado Con Exito";
                mensaje="true";
            }
            
            ArrayList<EnlacesTemasSylabus> LEnlaces = new ArrayList<EnlacesTemasSylabus>();
            
             LEnlaces = EnlacesTemasSylabus.ListaEnlacesPorProfesor(codPersonaDocente,mensaje);
             
//            else{
//                Mensaje = "Enlace No Registrado";
//            }
             response.getWriter().write(new Gson().toJson(LEnlaces));
           // session.setAttribute("mensaje", Mensaje);
           // rd = this.getServletContext().getRequestDispatcher(next);
           // rd.forward(request,response);
        } finally {
            out.close();
        }
    }

      protected void muestraComunicados(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);
        try {
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
            System.out.println("2");
            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            System.out.println("3");
            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(codPersonaDocente);
            System.out.println("4");
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\""
                        + "<input type='checkbox' class='file' value='"
                        + actual.getCodComunicado() + "-" + codPersonaDocente + "'/>"
                        + "\",\"" + actual.getNombre()
                        + "\",\"" + actual.getFecha()
                        + "\",\"" + actual.getGrado()+ "'" + actual.getSeccion() + "'"
                        + "\",\"" + actual.getNivel()
                        + "\",\"" + actual.getTipo()
                        + "\",\"" + (actual.getEstado().equals("P")?"Pendiente":actual.getEstado().equals("A")?"Aprobado":"Denegado")
                        + "\"],");
            }
            System.out.println("5");
            String str = sb.substring(0,sb.length()-1);
            if(str.equals("")){
                str = "[]";
            }else{
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            request.setAttribute("comunicados", str);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoComun.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }

protected void RegistroComunicadosInv(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();        
        try {    HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
           /// int codPersona = Integer.parseInt(request.getParameter("codPersona"));
//            String cods [] = codigos.split(",");
//            int codGrado = Integer.parseInt(cods[0]);
//            int codSeccion = Integer.parseInt(cods[1]);
//            int codNivel = Integer.parseInt(cods[2]);
           
//            codGradoNivel = Utilidades.nivelGradoAlumno(codGrado,codNivel);
           ProyectosComunicados oComunicado = new ProyectosComunicados();
           if(!request.getParameter("codComunicado").equals(""))
           {
            oComunicado.setCodComunicado(Integer.parseInt(request.getParameter("codComunicado")));
            
            String titulo = request.getParameter("titulo");
            String fecha = request.getParameter("fecha");
            String horaInicio = request.getParameter("horaInicio");
            String horaFin = request.getParameter("horaFin");
            String lugar = request.getParameter("lugar");
            String descripcion = request.getParameter("descripcion");
            int codSeccion = Integer.parseInt(request.getParameter("cboAula").split(",")[1]);
            int codNivelGrado = Utilidades.nivelGradoAlumno(Integer.parseInt(request.getParameter("cboAula").split(",")[0]),Integer.parseInt(request.getParameter("cboAula").split(",")[2]));
            int codTipo = Integer.parseInt(request.getParameter("cboTipo"));
            
            oComunicado.setNombre(titulo);
            oComunicado.setFecha(fecha);
            oComunicado.setHoraInicio(horaInicio);
            oComunicado.setHoraFin(horaFin);
            oComunicado.setDescripcion(descripcion);
            oComunicado.setLugar(lugar);
            oComunicado.setCodNivelGrado(codNivelGrado);          
            oComunicado.setCodAula(codSeccion);
            oComunicado.setCodTipo(codTipo);
            oComunicado.setCodPersona(cod);
            
           
         
            
            ProyectosComunicados.actualizarComunicado(oComunicado);
           }
           else
           {
              
            String titulo = request.getParameter("titulo");
            String fecha = request.getParameter("fecha");
            String horaInicio = request.getParameter("horaInicio");
            String horaFin = request.getParameter("horaFin");
            String lugar = request.getParameter("lugar");
            String descripcion = request.getParameter("descripcion");
            
            //String codigos = request.getParameter("cboAula"); 
               System.out.println("Split 1: "+request.getParameter("cboAula").split(",")[1]);
            int codSeccion = Integer.parseInt(request.getParameter("cboAula").split(",")[1]);
            int codNivelGrado = Utilidades.nivelGradoAlumno(Integer.parseInt(request.getParameter("cboAula").split(",")[0]),Integer.parseInt(request.getParameter("cboAula").split(",")[2]));
            int codTipo = Integer.parseInt(request.getParameter("cboTipo"));
            oComunicado.setNombre(titulo);
            oComunicado.setFecha(fecha);
            oComunicado.setHoraInicio(horaInicio);
            oComunicado.setHoraFin(horaFin);
            oComunicado.setDescripcion(descripcion);
            oComunicado.setLugar(lugar);
            oComunicado.setCodNivelGrado(codNivelGrado);          
            oComunicado.setCodAula(codSeccion);
            oComunicado.setCodTipo(codTipo);
            oComunicado.setCodPersona(cod);
               System.out.println("Comunicado Registro: "+oComunicado);
             boolean resp=ProyectosComunicados.registroComunicado(oComunicado);
                System.out.println("Respuesta de la Transaccion"+resp);
           }
        //    oComunicado.setCodPersona(codPersona);
//            if(oComunicado.getCodComunicado()>0)
//            {
//                ProyectosComunicados.actualizarComunicado(oComunicado);
//            }else{
//                boolean resp=ProyectosComunicados.registroComunicado(oComunicado);
//            String titulo = request.getParameter("titulo");
//            String fecha = request.getParameter("fecha");
//            String horaInicio = request.getParameter("horaInicio");
//            String horaFin = request.getParameter("horaFin");
//            String lugar = request.getParameter("lugar");
//            String descripcion = request.getParameter("descripcion");
//            //String codigos = request.getParameter("cboAula");       
//            int codSeccion = Integer.parseInt(request.getParameter("cboAula").split(",")[1]);
//            int codTipo = Integer.parseInt(request.getParameter("cboTipo"));
//                System.out.println("Respuesta de la Transaccion"+resp);
//            }
  
        
           
            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodComunicado() + "'/>" 
                        + "\",\"" + actual.getNombre() 
                        + "\",\"" + actual.getFecha() 
                        + "\",\"" + actual.getGrado()+ "'" + actual.getSeccion() + "'" 
                        + "\",\"" + actual.getNivel() 
                        + "\",\"" + actual.getTipo() 
                        + "\",\"" + (actual.getEstado().equals("P")?"Pendiente":actual.getEstado().equals("A")?"Aprobado":"Denegado") 
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodComunicado() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            out.println(str);
        } finally {
            out.close();
        }
    }
   
protected void comunicadosDocente(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        
        try {
            HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodComunicado() + "'/>" 
                        + "\",\"" + actual.getNombre() 
                        + "\",\"" + actual.getFecha() 
                        + "\",\"" + actual.getGrado()+ "'" + actual.getSeccion() + "'" 
                        + "\",\"" + actual.getNivel() 
                        + "\",\"" + actual.getTipo() 
                        + "\",\"" + (actual.getEstado().equals("P")?"Pendiente":actual.getEstado().equals("A")?"Aprobado":"Denegado")
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodComunicado() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            
            request.setAttribute("comunicados", str);

            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoComun.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }

   protected void listaTemas(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
                HttpSession session = request.getSession(true);
                String codigos = request.getParameter("asignatura");
                String cods[] = codigos.split(",");
                String codCurso = cods[0];
                String codGrado = cods[1];
                String codNivel = cods[2];   
//                      String codSeccion = cods[3];
//                      System.out.println("Cod Seccion: "+codSeccion);
                int cNivel = Integer.parseInt(codNivel);
                int cGrado = Integer.parseInt(codGrado);
                int cCurso = Integer.parseInt(codCurso);
           //    int cSeccion = Integer.parseInt(codSeccion);
                int codNivelGrado = 0;
                codNivelGrado = Utilidades.nivelGradoAlumno(cGrado, cNivel);
                ArrayList<EnlacesTemasSylabus> LTemas = new ArrayList<EnlacesTemasSylabus>();
                LTemas = EnlacesTemasSylabus.temasPorCursoNivelGrado(cCurso, codNivelGrado);
                //Preparar
                String resp="";
                for(EnlacesTemasSylabus tema: LTemas)
                {
                    resp+="<option value='"+tema.getCodTema()+"'>"+tema.getTema()+"</option>";
                }
                out.print(resp);
            }
       finally 
            {
                out.close();
            }
        }
 protected void listaTemasProyectos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {            
            String codigos = request.getParameter("cboCurso");
            String cods[] = codigos.split(",");
            String codCurso = cods[0];
            String codGrado = cods[1];
            String codNivel = cods[2];
            int cNivel = Integer.parseInt(codNivel);
            int cGrado = Integer.parseInt(codGrado);
            int cCurso = Integer.parseInt(codCurso);
            int codNivelGrado = 0;
            codNivelGrado = Utilidades.nivelGradoAlumno(cGrado, cNivel);
            List<EnlacesTemasSylabus> LTemas = new ArrayList<EnlacesTemasSylabus>();
            LTemas = EnlacesTemasSylabus.temasPorCursoNivelGrado(cCurso, codNivelGrado);
            out.print("<option value='default'>---Seleccione Tema---</option>");
            for(EnlacesTemasSylabus o:LTemas){
                out.print("<option value='"+ o.getCodTema()+ "'>"+ o.getTema() +"</option>");
            }
        } finally {
            out.close();
        }
    }

   protected void RegistroProyecto(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            String nombre = request.getParameter("nombre");
            String formato = request.getParameter("formato");
            String integrantes = request.getParameter("integrantes");
            int codTema = Integer.parseInt(request.getParameter("cmbTema"));
            String fecha = request.getParameter("fechaEntrega");
            String descripcion = request.getParameter("descripcion");
            String materiales = request.getParameter("materiales");
            String referencias = "";
            int codSeccion = Integer.parseInt(request.getParameter("cmbCurso").split(",")[3]);
            ProyectosComunicados oProyecto = new ProyectosComunicados();
            if(!request.getParameter("codProyecto").equals("")){
                oProyecto.setCodProyecto(Integer.parseInt(request.getParameter("codProyecto")));
            }
            oProyecto.setNombre(nombre);
            oProyecto.setFecha(fecha);
            oProyecto.setFormato(formato);
            oProyecto.setIntegrantes(integrantes);
            oProyecto.setDescripcion(descripcion);
            oProyecto.setMateriales(materiales);
            oProyecto.setReferencias(referencias);
            oProyecto.setCodTema(codTema);
            oProyecto.setCodAula(codSeccion);
            if(oProyecto.getCodProyecto()>0){
                ProyectosComunicados.actualizarProyecto(oProyecto);
            }else{
                ProyectosComunicados.registroProyecto(oProyecto);
            }
            HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            List<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaProyectosPorProfesorYRangoFechas(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\" " + "<input type='checkbox' class='file' value='" + actual.getCodProyecto() + "'/>" + "\",\"" + actual.getNombre() +  "\",\"" + actual.getCurso() +  "\",\"" + actual.getTema() + "\",\"" + actual.getFecha() + "\",\"" + actual.getGrado()+ "\",\"" + actual.getNivel() + "\",\"<a href='javascript:showDialog("+ actual.getCodProyecto() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            out.println(str);
        } finally {
            out.close();
        }
    }


   protected void detalleProyecto(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            
            HttpSession session = request.getSession(true);
            int codComunicado = Integer.parseInt(request.getParameter("codProyecto"));
            ProyectosComunicados oProyecto = new ProyectosComunicados();
            oProyecto = ProyectosComunicados.ProyectoPorCodProyecto(codComunicado);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            List<Docente> LCursos = new ArrayList<Docente>();
            LCursos = Docente.CursosGradoSeccionNivelDocenteSegunHorario(cod);
            List<EnlacesTemasSylabus> LTemas = new ArrayList<EnlacesTemasSylabus>();
            LTemas = EnlacesTemasSylabus.temasPorCursoNivelGrado(oProyecto.getCodCurso(), oProyecto.getCodNivelGrado());
            request.setAttribute("temas", LTemas);
            request.setAttribute("cursos", LCursos);
            request.setAttribute("proyecto", oProyecto);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/ProyectosForm.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }


  protected void listaComunicados(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            //RequestDispatcher rd;
            //request.setAttribute("r_estilo", true);
            //String next = "/dinamica/docente/include_consulta/consultaComunicados.jsp";

//            int codPersonaDocente = Integer.parseInt(request.getParameter("codPersona").toString());
            //String fechaDesde = request.getParameter("txtFechaDesde");
            //String fechaHasta = request.getParameter("txtFechaHasta");
             //int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
              
//            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
//            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(codPersonaDocente);
//            session.setAttribute("listaComunicados", LComunicados);
//            response.getWriter().write(new Gson().toJson(LComunicados));
            //session.setAttribute("fechaDesde", fechaDesde);
            //session.setAttribute("fechaHasta", fechaHasta);
            //rd = this.getServletContext().getRequestDispatcher(next);
            //rd.forward(request,response);
            
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(codPersonaDocente);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodComunicado() + "-" + codPersonaDocente + "'/>" 
                        + "\",\"" + actual.getNombre() 
                        + "\",\"" + actual.getFecha() 
                        + "\",\"" + actual.getGrado()+ "'" + actual.getSeccion() + "'" 
                        + "\",\"" + actual.getNivel() 
                        + "\",\"" + actual.getTipo() 
                        + "\",\"" + (actual.getEstado().equals("P")?"Pendiente":actual.getEstado().equals("A")?"Aprobado":"Denegado") 
                        + "\"],");
            }
            String str = sb.substring(0,sb.length()-1);
            if(str.equals("")){
                str = "[]";
            }else{
                str = "[" + str + "]";
            }
            System.out.println("str: " + str);
            request.setAttribute("comunicado", str);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoComun.jsp").forward(request, response);

        } finally {
            out.close();
        }
    }
 
  protected void eliminarComunicado(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        PrintWriter out = response.getWriter();
        try {
             String[] codigos = request.getParameter("codigos").split(",");
            for (int i = 0; i < codigos.length; i++) {
                ProyectosComunicados.eliminarComunicado(Integer.parseInt(codigos[i]));
            }
            HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            ArrayList<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaComunicadosPorProfesor(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\"" 
                        + "<input type='checkbox' class='file' value='" 
                        + actual.getCodComunicado() + "'/>" 
                        + "\",\"" + actual.getNombre() 
                        + "\",\"" + actual.getFecha() 
                        + "\",\"" + actual.getGrado()+ "'" + actual.getSeccion() + "'" 
                        + "\",\"" + actual.getNivel() 
                        + "\",\"" + actual.getTipo() 
                        + "\",\"" + (actual.getEstado().equals("P")?"Pendiente":actual.getEstado().equals("A")?"Aprobado":"Denegado") 
                        + "\",\"<a href='javascript:showDialog("+ actual.getCodComunicado() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            out.println(str);
        } finally {
            out.close();
        }
    }

  protected void listaProyectos(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            //RequestDispatcher rd;
           // request.setAttribute("r_estilo", true);
           // String next = "/dinamica/docente/include_consulta/consultaProyectos.jsp";
            //Listar Cursos por docente...
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
            
            ArrayList<Docente> LCursos = new ArrayList<Docente>();
             LCursos = Docente.CursosGradoNivelDocenteSegunCodPersonaDocente(codPersonaDocente);
             this.getServletContext().getRequestDispatcher("/dinamica/docente/AulaVirtual/MantenimientoEnlaces.jsp").forward(request,response);
           // String fechaDesde = request.getParameter("txtFechaDesde");
            //String fechaHasta = request.getParameter("txtFechaHasta");
         //   Vector<ProyectosComunicados> LComunicados = new Vector<ProyectosComunicados>();
          //  LComunicados = ProyectosComunicados.ListaProyectosPorProfesorYRangoFechas(codPersonaDocente, fechaDesde, fechaHasta);
          ///  session.setAttribute("listaProyectos", LComunicados);
//            session.setAttribute("fechaDesde", fechaDesde);
//            session.setAttribute("fechaHasta", fechaHasta);
          //  rd = this.getServletContext().getRequestDispatcher(next);
           // rd.forward(request,response);

        } finally {
            out.close();
        }
    }

    protected void eliminarProyecto(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {            
            String[] codigos = request.getParameter("codigos").split(",");
            for (int i = 0; i < codigos.length; i++) {
                ProyectosComunicados.eliminarProyecto(Integer.parseInt(codigos[i]));
            }
           
           

            HttpSession session = request.getSession(true);
            int cod = Integer.parseInt(session.getAttribute("codPersona").toString());
            List<ProyectosComunicados> LComunicados = new ArrayList<ProyectosComunicados>();
            LComunicados = ProyectosComunicados.ListaProyectosPorProfesorYRangoFechas(cod);
            StringBuilder sb = new StringBuilder();
            for(ProyectosComunicados actual:LComunicados){
                sb.append("[\" " + "<input type='checkbox' class='file' value='" + actual.getCodProyecto() + "'/>" + "\",\"" + actual.getNombre() +  "\",\"" + actual.getCurso() +  "\",\"" + actual.getTema() + "\",\"" + actual.getFecha() + "\",\"" + actual.getGrado()+ "\",\"" + actual.getNivel() + "\",\"<a href='javascript:showDialog("+ actual.getCodProyecto() + ");' class='edit_icon' title='Editar'></a>\"],");
            }
            String str = "";
            System.out.println(sb.toString());
            if(sb.length()==0){
                str = "[]";
            }else{
                str = sb.substring(0,sb.length()-1);
                str = "[" + str + "]";
            }
            out.println(str);
        } finally {
            out.close();
        }
    }

   protected void listaEnlaces(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
//            RequestDispatcher rd;
//            request.setAttribute("r_estilo", true);
         //   String next = "/dinamica/docente/include_consulta/consultaEnlaces.jsp";
            int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
           // String cods = request.getParameter("curso");
          //  if(cods!=null)
            //{
                 //   String Codigos[] = cods.split(",");
//                    int codCurso = Integer.parseInt(Codigos[0]);
//                    int codGrado = Integer.parseInt(Codigos[1]);
//                    int codNivel = Integer.parseInt(Codigos[2]);
//                    int codNivelGrado = Utilidades.nivelGradoAlumno(codGrado, codNivel);
//                
                  //  LEnlaces = EnlacesTemasSylabus.ListaEnlacesPorProfesorCursoNivelGrado(codPersonaDocente, codCurso, codNivelGrado);
                  
                  //session.setAttribute("listaEnlaces", LEnlaces);
//                    session.setAttribute("codNivelGrado", codNivelGrado);
//                    session.setAttribute("codCurso", codCurso);
//                    response.getWriter().write(new Gson().toJson(LEnlaces));
                    
            //}
                    ArrayList<EnlacesTemasSylabus> LEnlaces = new ArrayList<EnlacesTemasSylabus>();
                   LEnlaces = EnlacesTemasSylabus.ListaEnlacesPorProfesorCursoNivelGrado(codPersonaDocente);
            
//            rd = this.getServletContext().getRequestDispatcher(next);
//            rd.forward(request,response);

        } finally {
            out.close();
        }
    }

   protected void eliminarTodosEnlace(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try 
        {
             HttpSession session = request.getSession(true);
             int codPersonaDocente = Integer.parseInt(session.getAttribute("codPersona").toString());
             String totalEnlace=request.getParameter("enlaces");
             String[] enlace=totalEnlace.split("-");
             ArrayList<String> respuesta=new ArrayList<String>();
             for (int i = 0; i < enlace.length; i++) 
             {
                 if(EnlacesTemasSylabus.eliminarEnlace(Integer.parseInt(enlace[i])))
                 {
                    respuesta.add("listo");
                 }
                 else
                 {
                    respuesta.add("fallo");
                 }
             }
             
             response.getWriter().write((new Gson().toJson(respuesta)));
              
        }
        finally {
            out.close();
        }
   }     
   
   protected void eliminarEnlace(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
            String Mensaje = "";
            request.setAttribute("r_estilo", true);
            String next = "/dinamica/docente/include_consulta/consultaEnlaces.jsp";
            int codEnlace = Integer.parseInt(request.getParameter("codEnlace"));
            int codPersona = Integer.parseInt(request.getParameter("codPersona"));
            int codNivelGrado = (Integer)session.getAttribute("codNivelGrado");
            int codCurso = (Integer)session.getAttribute("codCurso");
            if(EnlacesTemasSylabus.eliminarEnlace(codEnlace)){
                    Mensaje = "Enlace Eliminado Con Exito";
                }else{
                    Mensaje = "Enlace No Eliminado";
                }
            for (int i = 0; i < 1000; i++) {
                
            }
            ArrayList<EnlacesTemasSylabus> LEnlaces= new ArrayList<EnlacesTemasSylabus>();
     //       LEnlaces = EnlacesTemasSylabus.ListaEnlacesPorProfesorCursoNivelGrado(codPersona, codCurso, codNivelGrado);
            session.setAttribute("listaEnlaces", LEnlaces);
            session.setAttribute("mensaje", Mensaje);          
            rd = this.getServletContext().getRequestDispatcher(next);
            rd.forward(request,response);
        } finally {
            out.close();
        }
    }
   
      
    protected void listaAlumnosAsistencia(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
            RequestDispatcher rd;
          //  request.setAttribute("r_estilo", true);
            //String next = "/dinamica/docente/include_consulta/listaAlumnoAsistencia.jsp";
            int codHorario = Integer.parseInt(request.getParameter("cboAula"));
            int codPersonaDocente = Integer.parseInt(request.getParameter("codigo"));
            int anioDocente = Utilidades.AnioDocentePorCodigo(codPersonaDocente);
            Vector<Alumno> LAlumnos = new Vector<Alumno>();
        //    LAlumnos = Alumno.nombreAlumnosSegunAula(codHorario, anioDocente);
            Docente oDocente = new Docente();
            oDocente = Docente.GradoSeccionNivelDocenteSegunCodigoHorario(codHorario,codPersonaDocente);
            session.setAttribute("listaAlumnos", LAlumnos);
          //  session.setAttribute("datosAula", oDocente);
        //    rd = this.getServletContext().getRequestDispatcher(next);
          //  rd.forward(request,response);

        } finally {
            out.close();
        }
    }
    
    protected void informacionAlumnoAsistencia(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            HttpSession session = request.getSession(true);
          //  RequestDispatcher rd;
          //  request.setAttribute("r_estilo", true);
           /// String next = "/dinamica/docente/include_consulta/asistencias_alumno.jsp";
           /// int cod = Integer.parseInt(request.getParameter("codigo"));            
           // session.setAttribute("codigo", cod);
            //rd = this.getServletContext().getRequestDispatcher(next);
          ///  rd.forward(request,response);
            this.getServletContext().getRequestDispatcher("/dinamica/docente/Asistencia/detalleAsistencia.jsp").forward(request,response);
        } finally {
            out.close();
        }
    }
    
    protected void ResumenAsistencia(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
           HttpSession session = request.getSession(true);
           RequestDispatcher rd;
           ArrayList<Asistencias> LResumen  = new ArrayList<Asistencias>();
            Calendar cal = GregorianCalendar.getInstance();
            int cod = Integer.parseInt(request.getParameter("codigo"));
            int mes = Integer.parseInt(request.getParameter("cboPeriodo"));
            int anio = Integer.parseInt(request.getParameter("anio"));
            String tipo=request.getParameter("tipo");
            cal.set(anio, mes, 1);
            String fechaDesde =  cal.getActualMinimum(GregorianCalendar.DAY_OF_MONTH) + "/" + (mes + 1) + "/" + (anio );
            String fechaHasta = cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) + "/" + (mes + 1) + "/" + (anio );
            String periodo = fechaDesde + " - " +fechaHasta;
            request.setAttribute("periodo", periodo);
            if(tipo.equalsIgnoreCase("R"))
            {
                LResumen = Asistencias.resumenAsistenciaAlumnoPorCodigoFechaDesdeYHasta(cod, fechaDesde, fechaHasta);
               
                request.setAttribute("resumenAsistencia", LResumen);
                //System.out.println("Holaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
                  this.getServletContext().getRequestDispatcher("/dinamica/docente/Asistencia/ResumenAsistencia.jsp").forward(request,response);
            }
            else
            {
               // String arr[] = periodo.split(" - ");
                //LResumen=new Asistencias().listaAsistenciaAlumnoPorCodigoFechaDesdeYHasta(cod, arr[0], arr[1]);
               // request.setAttribute("lista",LResumen);
                //System.out.println("Hellooooo"+arr[0]+"-"+arr[1]);
                 //
                LResumen = new Asistencias().listaAsistenciaAlumnoPorCodigoFechaDesdeYHasta(cod, fechaDesde, fechaHasta);
               
                request.setAttribute("resumenAsistencia", LResumen);
                
               this.getServletContext().getRequestDispatcher("/dinamica/docente/Asistencia/todaAsistencia.jsp").forward(request,response);
                //this.getServletContext().getRequestDispatcher("/dinamica/docente/Asistencia/ResumenAsistencia.jsp").forward(request,response);
            }

            
         //   request.setAttribute("r_estilo", true);
           // String next = "/dinamica/docente/include_consulta/rpt_asistencias_alumno.jsp";
            
            
           // session.setAttribute("codigo", cod);
            

         //   rd = rd=this.getServletContext().getRequestDispatcher(next);
          //  rd.forward(request,response);
            
        } finally {
            out.close();
        }
    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
